// ProjectName: go-learn-demo
// PackageName: _2_get_client
// Description:
// Author: hy.bai
// Date: 2025-08-02 10:53

package main

import (
	"fmt"
	"io"
	"log/slog"
	"net/http"
	"net/url"
)

// 发送Get请求,用于请求Web服务器。
func main() {
	// 1.定义url地址，有三种定义方式

	// 方式1:直接通过字符串进行拼接
	// urlApi := "http://127.0.0.1:8080/api/get?name=123"

	// 方式2：使用url包进行拼接(推荐使用)
	// params := uri.Values{}
	// params.Set("name", "ybxb")
	// urlApi := fmt.Sprintf("http://127.0.0.1:8080/api/get?%s", params.Encode())

	// 方式3:使用url进行解析
	params := url.Values{}
	params.Set("name", "ybxb")
	sayHelloUrl, _ := url.ParseRequestURI("http://127.0.0.1:8080/api/sayhello")
	sayHelloUrl.RawQuery = params.Encode()
	// 打印请求的完整url地址
	fmt.Printf("完整的url地址是:%s\n", sayHelloUrl.String())

	// 2.发起http请求
	resp, _ := http.Get(sayHelloUrl.String())
	repoData, _ := io.ReadAll(resp.Body)
	slog.Info("响应结果:", string(repoData))
}
